package com.live.shop.tool;

import android.os.Handler;

import java.io.IOException;

import okhttp3.MediaType;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.RequestBody;
import okhttp3.Response;

public class TrainUtil {
    //==========================请求====================
    //【模型服务灵积】
    private static String postDashScopeJson(String url, String jsonStr, String dashScopeKey) throws  InterruptedException {
        // 创建一个 Handler 用于处理子线程中的结果
        Handler handler = new Handler();
        final String[] result = {null};
        // 创建一个 Runnable 任务，用于执行网络请求
        Runnable networkTask = new Runnable() {
            @Override
            public void run() {
                // 在这里执行网络请求
                try {
                    // 这里替换成您的网络请求实现，例如使用 OkHttp 库
                    OkHttpClient client = new OkHttpClient();
                    RequestBody body = RequestBody.create(MediaType.parse("application/json;charset=utf-8"), jsonStr);
                    Request request = new Request.Builder()
                            .url(url)
                            .addHeader("Content-Type", "application/json")
                            .addHeader("Authorization", "Bearer "+dashScopeKey)
                            .post(body)
                            .build();
                    Response response = client.newCall(request).execute();
                    if (response.isSuccessful()) {
                        result[0] = response.body().string();
                    }
                } catch (Exception e) {
                    e.printStackTrace();
                }
                // 将网络请求结果提交给 Handler 处理
                handler.post(new Runnable() {
                    @Override
                    public void run() {
                        if (result[0] != null) {
                            // 在这里处理网络请求结果
                            System.out.println("网络请求结果：" + result[0]);
                        } else {
                            // 处理请求失败的情况
                            System.out.println("网络请求失败");
                        }
                    }
                });
            }
        };
        // 在子线程中执行网络请求任务
        Thread networkThread = new Thread(networkTask);
        networkThread.start();
        // 等待网络请求完成
        networkThread.join();

        return result[0];
    }
    //【向量检索服务】
    private static String postDashVectorJson(String url,String jsonStr,String dashVectorKey) throws InterruptedException {
        // 创建一个 Handler 用于处理子线程中的结果
        Handler handler = new Handler();
        final String[] result = {null};
        // 创建一个 Runnable 任务，用于执行网络请求
        Runnable networkTask = new Runnable() {
            @Override
            public void run() {
                // 在这里执行网络请求
                try {
                    // 这里替换成您的网络请求实现，例如使用 OkHttp 库
                    OkHttpClient client = new OkHttpClient();
                    RequestBody body = RequestBody.create(MediaType.parse("application/json;charset=utf-8"), jsonStr);
                    Request request = new Request.Builder()
                            .url(url)
                            .addHeader("Content-Type", "application/json")
                            .addHeader("dashvector-auth-token", dashVectorKey)
                            .post(body)
                            .build();
                    Response response = client.newCall(request).execute();
                    if (response.isSuccessful()) {
                        result[0] = response.body().string();
                    }
                } catch (Exception e) {
                    e.printStackTrace();
                }
                // 将网络请求结果提交给 Handler 处理
                handler.post(new Runnable() {
                    @Override
                    public void run() {
                        if (result[0] != null) {
                            // 在这里处理网络请求结果
                            System.out.println("网络请求结果：" + result[0]);
                        } else {
                            // 处理请求失败的情况
                            System.out.println("网络请求失败");
                        }
                    }
                });
            }
        };
        // 在子线程中执行网络请求任务
        Thread networkThread = new Thread(networkTask);
        networkThread.start();
        // 等待网络请求完成
        networkThread.join();

        return result[0];
    }
    //【向量检索服务】
    private static void deleteDashVectorJson(String url,String jsonStr,String dashVectorKey) throws IOException, InterruptedException {
        // 创建一个 Handler 用于处理子线程中的结果
        Handler handler = new Handler();
        final String[] result = {null};
        // 创建一个 Runnable 任务，用于执行网络请求
        Runnable networkTask = new Runnable() {
            @Override
            public void run() {
                // 在这里执行网络请求
                try {
                    // 这里替换成您的网络请求实现，例如使用 OkHttp 库
                    OkHttpClient client = new OkHttpClient();
                    RequestBody body = RequestBody.create(MediaType.parse("application/json;charset=utf-8"), jsonStr);
                    Request request = new Request.Builder()
                            .url(url)
                            .addHeader("Content-Type", "application/json")
                            .addHeader("dashvector-auth-token", dashVectorKey)
                            .delete(body)
                            .build();
                    Response response = client.newCall(request).execute();
                    if (response.isSuccessful()) {
                        result[0] = response.body().string();
                    }
                } catch (Exception e) {
                    e.printStackTrace();
                }
                // 将网络请求结果提交给 Handler 处理
                handler.post(new Runnable() {
                    @Override
                    public void run() {
                        if (result[0] != null) {
                            // 在这里处理网络请求结果
                            System.out.println("网络请求结果：" + result[0]);
                        } else {
                            // 处理请求失败的情况
                            System.out.println("网络请求失败");
                        }
                    }
                });
            }
        };
        // 在子线程中执行网络请求任务
        Thread networkThread = new Thread(networkTask);
        networkThread.start();
    }
}
